import { defineStore } from 'pinia'
// Store 是使用 defineStore() 定义的，并且它需要一个唯一名称(id)，作为第一个参数传递，参数二是配置对象
// 命名规则要以 use 开头，例如 useUser、useCart
const useUserStore = defineStore('userId', {
  // 一、state 这里设置状态管理的变量
  state: () => {
    return {
      // 1. 存储用户的 Token，所有这些属性都将自动推断其类型
      userToken: window.localStorage.getItem('USER_TOKEN') || null
    }
  },
  // 二、状态需要被多次修改，而且每次修改都需被访问到，可以使用计算属性 getters 来设置
  getters: {

  },
  // 三、actions 定义方法对 state 中的状态进行处理
  actions: {
    // 通过参数接收，获取到的 token 值
    setUser (token) {
      this.userToken = token
      window.localStorage.setItem('USER_TOKEN', token)
    }
  }
})

export default useUserStore
